import com.mysql.cj.jdbc.MysqlDataSource;

import javax.sql.DataSource;
import java.sql.Connection;
import java.sql.PreparedStatement;
import java.sql.ResultSet;
import java.sql.SQLException;

/**
 * Created with IntelliJ IDEA.
 * Description:
 * User: 邓大帅
 * Date: 2024-01-23
 * Time: 14:14
 */
public class JDBCSelect {
    public static void main(String[] args) throws SQLException {
//        1.创建数据源
        DataSource dataSource = new MysqlDataSource();
        ((MysqlDataSource)dataSource).setUrl("jdbc:mysql://127.0.0.1:3306/java107?characterEncoding=utf8&useSSL=false");
        ((MysqlDataSource)dataSource).setUser("root");
        ((MysqlDataSource)dataSource).setPassword("123456");
//        2.建立连接
        Connection connection = dataSource.getConnection();
//        3.构造sql
        String sql = "select * from student";
        PreparedStatement statement = connection.prepareStatement(sql);
//        4.执行sql
        ResultSet resultSet = statement.executeQuery();//结果集合临时表
//        5.遍历结果集合
//        把resultSet想象成一个表格，同时表格这里有一个光标，初始情况光标位于表格上方一行的位置
//        每次调用next，光标往下走一行
//        当光标指向一行的时候，就可以通过 get... 来获取当前这一行的数据
        while (resultSet.next()) {
            int id = resultSet.getInt("id");//get...是取出这一行的指定列的值，使用的方法要和列的类型匹配
            String name = resultSet.getString("name");//传参可以是“第几列”的下，也可以是列名(推荐)
            System.out.println("id = " + id + ", name = " + name);
        }
//        6.释放资源
        resultSet.close();
        statement.close();
        connection.close();
    }
}
